Conventionally, a message queue that asynchronously aligns different processes has been known as a technique for transmitting a message from a transmitter of the message to a receiver of the message. When the message queue is used, allocation design of the message queue is performed so that a server that accesses the message queue and an amount of the message queue are previously determined.
In general, an application for transmitting a message transmits a message without recognizing the state of the message reception side. Accordingly, when the reception side may not receive the message, a storage area of the message is insufficient. Thus, the message transmission may not be performed. That is, overcapacity may occur due to stagnant. To avoid the overcapacity, there is a known technique for dynamically expanding a physical capacity of the message queue while making a plurality of servers look like a single virtual message queue.
Since the message queue handles a large capacity of data in most cases, the performance may deteriorate due to the I/O load with respect to the storage area of the message. On the contrary, by dividing the storage area of the message into a plurality of areas and determining the storage area by Round Robin method, a technique for distributing the I/O load is used.
Distributed Hash Table (DHT) for distributing data into a plurality of servers has been known as a technique for performing dynamic expansion and load distribution of the storage area of the data. The DHT is a distributed data structure or an algorithm for assigning a key to the data and determining a server that process or store the data according to the assigned key. Consistent Hash (CH) has been known as mounting of the DHT.
More specifically, the DHT determines an assigned area of a fixed length bit space by using a hash function for each server. The DHT calculates the key of the data to be stored by using the hash function and stores the key in the assigned area. In this manner, the DHT configures a Peer to Peer (P2P) overlay network. The CH is used as a distribution storage having expandability as an architecture that may correspond to variations of a system configuration.
To determine a server in charge based on a hash value calculated by using destination information such as internet protocol (IP) address, the DHT manages the IP address of each of the servers forming the CH space. There are two types of management method. One is a method for central management in a special server that is accessible from the servers. The other one is a method for managing in each of the servers. As for a large-scale distributed system of recent years, the method for managing in each of the servers is used in most cases from the perspective of usability.
As for the method for managing in each of the servers, the destination information to be managed increases as the number of servers increases. A large amount of communication traffic for performing life-and-death monitoring of each of the servers or performing synchronizing processing of the destination information may occur. As a method for solving the above-described problem, there is a known routing algorithm for reducing the destination information that is held in a single server and decreasing the number of servers (hereinafter referred to as the number of hops) through which the information reaches a target server. An algorithm such as Chord and Pasty forming a logic space on a closed number line or an algorithm such as CAN forming a logic space by using N-dimensional torus has been known as an example of the routing algorithm. When the Chord is used, the target server is reached in the number of hops of O (log2N) regardless of the number of servers (N). As Related art, for example, Japanese Unexamined Patent Publication (Translation of PCT application) No. 2010-501942, and Japanese Laid-open Patent Publication No. 11-017769 are disclosed.
However, the conventional technique has a problem that the data processing speed is insufficient.
For example, like a Web front system for online stock trading, in a system with a competitive advantage that is improved when latency thereof is decreased by reducing a single communication of a few hundred microseconds, the stability of the speed of the processing of the data or the speed desired for the data processing in the Chord method is insufficient. The same can be said of a system in which processing such as streaming processing corresponds to a case where the communication speed is latest.
More specifically, as for the Chord, the communication has tow hops or more in more than 50 percent of the time regardless of the number of servers. If the number of server is 100, the communication has five hops at most, and one millimeter or more of difference in communication performance may be generated. That is, in the processing over a plurality of servers, useless communication in a lower layer may occur if the overhead is high and a topology of an overlay is made independently of the topology in the lower layer. In this manner, even when the algorithm such as Chord is used, the sufficient processing speed may not be achieved depending on a system.